The present invention relates generally to software testing in software development centers.
Software testing in large development centers is complex and expensive. Large test organizations, responsible for simultaneously testing numerous products, face difficulty scheduling testing tasks in a way that satisfies test configuration requirements, resource limitations imposed by system availability, and capacity of physical test machines. Inefficient scheduling of test runs can lead to underutilization of both human and physical machines, which can, in turn, lead to disruption of the software development cycle, premature termination of the test phase, and/or deferred delivery dates. Scheduling test activities by hand is tedious and more importantly, it is likely to result in low-quality schedules. Yet the problem of automating scheduling to optimize resource utilization has received little attention relative to other parts of the testing process.
A general background on scheduling models and methodologies can be found in the reference entitled “Handbook of scheduling: Algorithms, Models, and Performance Analysis”, Edited by Joseph Y.-T. Leung. Chapman & Hall/CRC Computer and Information Science Series. Chapman & Hall/CRC, Boca Raton, Fla., 2004, the entire contents and disclosure of which is incorporated by reference as if fully set forth herein.
A closely related previously studied problem is known as timetabling such as described in a reference authored by S. Petrovic and E. Burke entitled “University Timetabling” founding above-incorporated In Handbook of scheduling. Algorithms, models, and Performance Analysis, edited by Joseph Y.-T. Leung. Chapman & Hall/CRC Computer and Information Science Series. Chapman & Hall/CRC, Boca Raton, Fla., 2004, chap. 45.
In a typical application, classrooms must be allocated to classes, satisfying (non)-concurrency constraints similar to “sliding window” [defined in section 0037] constraints. However, classrooms are allocated exclusively with each class requiring only one room. Sophisticated local search techniques have been applied to timetabling and similar problems including: simulated annealing, tabu search, and genetic algorithms, e.g., as described in a reference entitled “Local Search in Combinatorial Optimization,” edited by E. Aarts and J. Lenstra. Reprint of the 1997 original [Wiley, Chichester; MR1458630], Princeton University Press, Princeton, N.J., 2003.
It would be desirable to provide an automated system and method for solving a complex scheduling problem faced by software product test organizations.
It would be desirable to provide the ability for a software developer to schedule all user (tester) jobs feasibly while satisfying the developer's time preferences to the greatest extent possible.